function getCookie(name) {
    var r = document.cookie.match("\\b" + name + "=([^;]*)\\b");
    return r ? r[1] : undefined;
}

function generateUUID() {
    var d = new Date().getTime();
    if(window.performance && typeof window.performance.now === "function"){
        d += performance.now(); //use high-precision timer if available
    }
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        var r = (d + Math.random()*16)%16 | 0;
        d = Math.floor(d/16);
        return (c=='x' ? r : (r&0x3|0x8)).toString(16);
    });
    return uuid;
}
var imageCodeId = ""
var preimageCodeId =""
// 生成一个图片验证码的编号，并设置页面中图片验证码img标签的src属性
function generateImageCode() {

    // 生成图片编号,就是uuid
    imageCodeId = generateUUID()

    // 生成url
    var url = "/api/v1.0/image_code?cur_id=" + imageCodeId + "&pre_id=" + preimageCodeId
    // var url = "/api/v1.0/image_code?cur_id=" + imageCodeId + "&pre_id=" + preimageCodeId

    // 给图片设置属性，添加url地址
    $(".image-code > img").attr("src",url)

    preimageCodeId = imageCodeId

    //     // 生成图片的uuid（图片编号）
    // imageCodeId = generateUUID()
    //
    // // 生成url
    // var url = "/api/v1.0/image_code?cur_id=" + imageCodeId + "&pre_id=" + preImageCodeId
    // // 给图片验证码的img标签设置url
    // $(".image-code>img").attr("src", url)
    // // 记录当前这一次的编码，以便下一次请求的时候使用
    // preImageCodeId = imageCodeId


}

function sendSMSCode() {
    // 校验参数，保证输入框有数据填写
    $(".phonecode-a").removeAttr("onclick");
    var mobile = $("#mobile").val();
    if (!mobile) {
        $("#mobile-err span").html("请填写正确的手机号！");
        $("#mobile-err").show();
        $(".phonecode-a").attr("onclick", "sendSMSCode();");
        return;
    } 
    var imageCode = $("#imagecode").val();
    if (!imageCode) {
        $("#image-code-err span").html("请填写验证码！");
        $("#image-code-err").show();
        $(".phonecode-a").attr("onclick", "sendSMSCode();");
        return;
    }

    // TODO: 通过ajax方式向后端接口发送请求，让后端发送短信验证码
    //　用一个变量存储参数
    // var parems =　{
    //     "mobile":mobile,
    //     "image_code": imageCode,
    //     "image_code_id":imageCodeId
    // };
     var parems = {
        "mobile": mobile,
        "image_code": imageCode,
        "image_code_id": imageCodeId
    }

    console.log(parems);

    //发送ajax请求
    $.ajax({

        url: "/api/v1.0/sms_code",  //请求地址
        type: "post", //请求方式
        data: JSON.stringify(parems), //请求参数
        headers: {
            "X-CSRFToken": getCookie("csrf_token")
        },
        contentType: "application/json",// 请求参数的数据类型
        success: function (resp) {
            console.log(resp);
            //　通过后端发送过来的验证码判断是否成功，已经返回一个json对象
            if (resp.errno == "0"){
                //表示发送成功
                var time = 60
                // 设置一个定时器
               var t = setInterval(function () {

                    //验验证码时间到了
                    if (time == 0){
                        //清除定时器
                        clearInterval(t);

                        //更新验证框的内容
                        $(".phonecode-a").html("获取验证码");

                        //添加点击事件
                         $(".phonecode-a").attr("onclick", "sendSMSCode();");
                    }else {
                        //显示时间的增减
                         $(".phonecode-a").html(time + "秒");

                    }
                    time = time - 1


                },1000)

            }else {

                //将点击事件重新添加回去
                 $(".phonecode-a").attr("onclick", "sendSMSCode();");

                //重新刷新验证码
                generateImageCode();
                alert(resp.errmsg);

            }

        }

    })
}


$(document).ready(function() {
    generateImageCode();  // 生成一个图片验证码的编号，并设置页面中图片验证码img标签的src属性
    $("#mobile").focus(function(){
        $("#mobile-err").hide();
    });
    $("#imagecode").focus(function(){
        $("#image-code-err").hide();
    });
    $("#phonecode").focus(function(){
        $("#phone-code-err").hide();
    });
    $("#password").focus(function(){
        $("#password-err").hide();
        $("#password2-err").hide();
    });
    $("#password2").focus(function(){
        $("#password2-err").hide();
    });

    // TODO: 注册的提交(判断参数是否为空)
    // 获取到表单对象
    $(".form-register").submit(function (e) {

        // 阻止默认提交事件
        e.preventDefault()

        // 获取每个输入框中的内容
        var moblie = $("#mobile").val()
        var phonecode = $("#phonecode").val()
        var password  = $("#password").val()
        var password2  = $("#password2").val()

        if(!moblie){

            // 显示错误信息
            $("#mobile-err span").html("请输入手机号")
            // 将焦点显示
               $("#mobile-err").hide()
            return

        }
          if(!phonecode){

            // 显示错误信息
            $("#phone-code-err span").html("请填写验证码")
            // 将焦点显示
              $("#phone-code-err").hide()

        }
          if (!password) {
            $("#password-err span").html("请填写密码!");
            $("#password-err").show();
            return;
        }
        if (password != password2) {
            $("#password2-err span").html("两次密码不一致!");
            $("#password2-err").show();
            return;
        }

        // 组织成字典的形式发送准备发送给后端

        var  param = {
            "mobile":moblie,
            "password":password,
            "phonecode":phonecode
        }

        // 发送ajax请求
        $.ajax({
            url:"/api/v1.0/user",   // 发送地址
            type:"post",   //  请求方式
            contentType:"application/json" , // 请求参数类型
            headers: {
                "X-CSRFToken": getCookie("csrf_token")
            }, //添加保护机制
            data:JSON.stringify(param), // 请求参数
            success:function (resp) {

                if (resp.errno == "0"){

                    // 证明注册成功，跳转到主页去
                    location.href ="/"
                }else {
                    // 显示错误信息
                     $("#password2-err span").html(resp.errmsg);
                    $("#password2-err").show();
                }

            }
        })
    })
})
